#ifndef UTIL_HPP
#define UTIL_HPP

#include "LL1Parser.hpp"
#include "LRAnalyzer.hpp"
#include "LRTable.hpp"

int is_all_digits(const char *str);
int is_valid_ident(const char *str);

void printProjectSet(std::vector<ProjectSet> const &res);

void printTable(std::unordered_map<std::string, TableItem> &table);

void printFollowSet(
    const std::unordered_map<std::string, std::unordered_set<std::string>>
        &followSet);

std::vector<define>
DefineExpr2define(std::vector<DefineExpr> &defineExpressVec);

#endif // !UTIL_HPP
